package com.transac.demo.service;
//MANDATORY 使用当前的事务，如果当前没有事务，就抛出异常。
public interface TransactionMandatoryService {
    /*
     * 外层无事务注解，直接报错
     */
    void updateMoney1();

    /*
     * 外层有事务注解，正常执行
     * 外层提交，内层提交
     */
    void updateMoney2();

    /*
     * 外层有事务注解，内层抛错
     * 外层回滚，内层回滚
     */
    void updateMoney3();

    /*
     * 外层有事务注解，内层抛错，内层try/catch捕获
     * 外层提交，内层提交
     */
    void updateMoney4();

    /*
     * 外层有事务，内层抛错，外层try/catch捕获
     * 外层回滚，内层回滚
     * 备注：这里注意，虽然异常被外层捕获到了，但内层的事务回滚已经触发，由于外层和内层在一个事务里，所以外层也会回滚
     */
    void updateMoney5();

}
